/*
 * Copyright (c) 2018. paascloud.net All Rights Reserved.
 * 项目名称：paascloud快速搭建企业级分布式微服务平台
 * 类名称：UrlUtil.java
 * 创建人：刘兆明
 * 联系方式：paascloud.net@gmail.com
 * 开源地址: https://github.com/paascloud
 * 博客地址: http://blog.paascloud.net
 * 项目官网: http://paascloud.net
 */

package com.csun.cmny.util;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * url转码、解码
 *
 * @author paascloud.net @gmail.com
 */
@Slf4j
public class UrlUtil {
	private final static String ENCODE = "GBK";

	/**
	 * URL 解码
	 */
	public static String getURLDecoderString(String str) {
		String result = "";
		if (null == str) {
			return "";
		}
		try {
			result = java.net.URLDecoder.decode(str, ENCODE);
		} catch (UnsupportedEncodingException e) {
			log.error("URL解码失败 ex={}", e.getMessage(), e);
		}
		return result;
	}

	/**
	 * URL 转码
	 */
	public static String getURLEncoderString(String str) {
		String result = "";
		if (null == str) {
			return "";
		}
		try {
			result = java.net.URLEncoder.encode(str, ENCODE);
		} catch (UnsupportedEncodingException e) {
			log.error("URL转码失败 ex={}", e.getMessage(), e);
		}
		return result;
	}

	public static List<String> extractImg(String content) {
//		List<String> srcList = new ArrayList<String>(); // 用来存储获取到的图片地址
//		if(StringUtils.isBlank(content)) {
//			return srcList;
//		}
//		Pattern p = Pattern.compile("<(img|IMG)(.*?)(>|></img>|/>)");// 匹配字符串中的img标签
//		Matcher matcher = p.matcher(content);
//		boolean hasPic = matcher.find();
//		if (hasPic == true){// 判断是否含有图片
//			while (hasPic){ // 如果含有图片，那么持续进行查找，直到匹配不到
//				String group = matcher.group(2);// 获取第二个分组的内容，也就是 (.*?)匹配到的
//				Pattern srcText = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");// 匹配图片的地址
//				Matcher matcher2 = srcText.matcher(group);
//				if (matcher2.find()) {
//				srcList.add(matcher2.group(3));// 把获取到的图片地址添加到列表中
//				}
//				hasPic = matcher.find();// 判断是否还有img标签
//			}
//		}
//		return srcList;

		List<String> srcList = new ArrayList<String>(); // 用来存储获取到的图片地址
		if(StringUtils.isBlank(content)) {
			return srcList;
		}
		Pattern p = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");// 匹配字符串中的img标签
		Matcher matcher = p.matcher(content);
		boolean hasPic = matcher.find();
		if (hasPic == true){// 判断是否含有图片
			while (hasPic){ // 如果含有图片，那么持续进行查找，直到匹配不到
				String group = matcher.group(3);// 获取第二个分组的内容，也就是 (.*?)匹配到的
//				Pattern srcText = Pattern.compile("(src|SRC)=(\"|\')(.*?)(\"|\')");// 匹配图片的地址
//				Matcher matcher2 = srcText.matcher(group);
//				if (matcher2.find()) {
				srcList.add(group);// 把获取到的图片地址添加到列表中
//				}
				hasPic = matcher.find();// 判断是否还有img标签
			}
		}
		return srcList;
	}
}